package com.kclmedu.sst.mapper;

import com.kclmedu.sst.entity.Permission;
import com.kclmedu.sst.entity.User;

import java.util.List;

/*********************
 * UserMapper接口，提供两个方法为 Spring Security服务，分别是：
 * 1. 根据用户名来查询用户对象，这个对象是实现了 UserDetails接口的类型
 * 2. 根据用户名来查询此用户拥有的权限集合。
 */
public interface UserMapper {

    /******************
     * 根据用户名来查询用户对象
     * @param username
     * @return 如果用户不存在，则返回null
     */
    User findByUserName(String username);

    /********************
     * 根据用户名来查询此用户拥有的权限集合
     * @param username
     * @return
     */
    List<Permission> findPermissionByUserName(String username);

    /*****************
     * 更新用户密码，并使用加密功能让密码加密
     * @param user
     */
    void updatePassword(User user);

}
